1. 简介
Monstra是一个现代化的轻量级内容管理系统。它易于安装,升级和使用。
2. 环境搭建
官方网站:https://monstra.org/下载最新版3.0.4
推荐使用wamp快速搭建环境,刚开始用phpstudy搭建,步骤都一样不知道为什么总是不成功,使用wamp一次就成功了。
解压源代码到wamp/www目录
在wamp/www中.htaccess中添加如下代码,用来支持解析.php7扩展的php文件
1 | addType application/x-httpd-php .php7 |
一定要添加这行代码,不然无法将.php7解析成php只能解析成文本,如图支持解析php7不支持解析php5,因为没有把.php5也加入解析成php程序。
3. 漏洞成因分析
在\plugins\box\filesmanager\filesmanager.admin.php文件找到关键代码
1 | // Upload file |
上传的文件会先校验扩展名是否在$forbidden_types中,$forbidden_types是没有php7的。由此可知该系统使用黑名单机制来控制上传文件格式的,由于黑名单中缺少php7,并且管理员配置不当:允许php7格式解析成php代码时,可以触发该漏洞。
4. 漏洞复现
管理员登录系统,选择上传,上传php7扩展的php木马,然后访问木马即可造成远程代码执行。
5. 影响版本
Monstra CMS <= 3.0.4,最新版为3.0.4
6.防御方法
暂无版本可升级,管理员可在\plugins\box\filesmanager\filesmanager.admin.php文件中$forbidden_types变量自行添加php7,用来禁止上传php7。
7. fofa搜索语法
body=”Monstra.org”
8. 坑点
默认配置是无法正常解析.php7文件为php,然后不管怎么搭建环境都无法复现,所以特别影响进度,后来才想到.htacces文件可以控制这个php解析类型,所以通过在.htaccess中添加如下代码addType application/x-httpd-php .php7,用来支持解析.php7扩展的php文件。
PHPstudy无法搭建此环境。就算在.htaccess中添加如下代码addType application/x-httpd-php .php7也无法成功复现,没找到原因,又耽误了很长时间,记录一下,避免踩坑。
- 本文作者: ordar
- 本文链接: https://mrwq.github.io/Monstra CMS 3.0.4 - Authenticated Arbitrary File Upload/
- 版权声明: 本文作者: ordar123 转载请注明出处!